package pe.com.cotelasa.scp.dominio.service;

import java.util.Collection;
import pe.com.cotelasa.scp.dominio.common.ResultadoServicio;
import pe.com.cotelasa.scp.dominio.common.ResultadoValidacion;
import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.entidad.Proveedor;
import pe.com.cotelasa.scp.to.ProveedorTO;

public interface IServicioProveedor {

    public Collection<Proveedor> listarProveedorActivos() throws ServiceException;

    public Proveedor conseguirProveedorPorId(Integer idProveedor) throws ServiceException;

    public Collection<Proveedor> listarTodosProveedores() throws ServiceException;

    public boolean validarRuc(String ruc) throws ServiceException;

    public boolean validarRazonSocial(String razonSocial) throws ServiceException;

    public ResultadoServicio guardarProveedor(Proveedor proveedor) throws ServiceException;

    public ResultadoServicio actualizarProveedor(Proveedor proveedor) throws ServiceException;

    public Collection<Proveedor> listarProveedorPorFiltro(Proveedor proveedor) throws ServiceException;

    public void registrarProveedor(Proveedor proveedor) throws ServiceException;

    public Proveedor conseguirProveedorConUbigeo(Integer idProveedor) throws ServiceException;

    public void eliminarProveedor(Proveedor proveedor) throws ServiceException;

    public Proveedor obtenerProveedorPorRazonSocial(String nomProveedor) throws ServiceException;

    public Collection<ProveedorTO> listarProveedorPorTipo() throws ServiceException;
}
